import fitz
import os

# 1. 创建空白PDF文档对象
pdf_doc = fitz.open()

# 2. 添加A4尺寸的页面
a4_width, a4_height = fitz.paper_size("a4")
page = pdf_doc.new_page(width=a4_width, height=a4_height)

# 3. 配置文本参数
font_size = 12
text_color = fitz.utils.getColor("black")

# 4. 使用更可靠的文本插入方法
try:
    # 方法1: 使用系统可用的中文字体
    # 获取可用字体列表
    available_fonts = fitz.get_font_names()

    # 尝试使用常见的中文字体
    chinese_fonts = ["SimSun", "SimHei", "Microsoft YaHei", "STSong", "KaiTi"]
    font_name = None

    for font in chinese_fonts:
        if font in available_fonts:
            font_name = font
            break

    if font_name:
        # 使用找到的中文字体
        title_font_size = 24
        title = "我的第一个PDF文档"
        title_x = 50
        title_y = 50

        # 插入标题
        page.insert_text(
            (title_x, title_y),
            title,
            fontsize=title_font_size,
            color=text_color,
            fontname=font_name
        )

        # 插入普通文本
        content = "这是用pymupdf生成的PDF文本。"
        page.insert_text(
            (50, 100),
            content,
            fontsize=font_size,
            color=text_color,
            fontname=font_name
        )
    else:
        # 如果没有找到中文字体，使用默认字体
        print("未找到合适的中文字体，将使用默认字体")

        # 设置文本样式
        title_font_size = 24
        title = "My First PDF Document"
        title_x = 50
        title_y = 50

        page.insert_text(
            (title_x, title_y),
            title,
            fontsize=title_font_size,
            color=text_color
        )

        content = "This is text generated by pymupdf."
        page.insert_text(
            (50, 100),
            content,
            fontsize=font_size,
            color=text_color
        )

except Exception as e:
    print(f"插入文本时出错: {e}")
    # 最后尝试简单的文本插入
    try:
        # 使用基础方法插入英文文本
        page.insert_text((50, 50), "PDF Generation Test")
        page.insert_text((50, 100), "Generated with pymupdf")
    except Exception as e2:
        print(f"最后的插入方法也失败: {e2}")

# 5. 保存PDF文档并关闭
output_path = "我的第一个PDF.pdf"
pdf_doc.save(output_path)
pdf_doc.close()

print("PDF文档生成成功！可打开'我的第一个PDF.pdf'查看效果。")
